aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/[username]/request/[id]/+page.svelte
blob: ff33c02c9592a901b4315907665f004502aa6e36 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<script>
  import { scale } from "svelte/transition";
  import { t } from "$lib/translations";
  import Avatar from "$comp/Avatar.svelte";
  import Icon from "$comp/Icon.svelte";
  import { f, sat, sats } from "$lib/utils";
  import { request as req, requestRedirect } from "$lib/store";
  import { onMount } from "svelte";

  export let data;
  let { request, user } = data;

  let amount, currency, rate, fiat;
  if (request.invoice) {
    ({ amount, rate, currency } = request.invoice);
    fiat = (amount * rate) / sats;
  }

  onMount(() => req.set());
</script>

<div class="container px-4 max-w-xl mx-auto space-y-8">
  <div class="text-center mb-8 space-y-5">
    {#if request.recipient_id === user.id}
      <p class="text-4xl break-words">
        <span class="text-xl md:text-2xl">{$t("payments.sentInvoiceTo")}</span>
      </p>
      <div class="flex p-1 gap-2 justify-center">
        <Avatar user={request.requester} size={20} />
        <p class="text-4xl break-words my-auto">{request.requester.username}</p>
      </div>
      <div>
        <h2 class="text-2xl md:text-3xl font-semibold">
          {f(fiat, currency)}
        </h2>
        <h3 class="text-secondary md:text-lg mb-6 mt-1">{sat(amount)}</h3>
      </div>
    {:else}
      <div
        class="flex w-full max-w-[200px] mx-auto py-20"
        in:scale={{ start: 0.5 }}
      >
        <Icon icon="check" style="mx-auto" />
      </div>
      <p class="text-3xl">
        {$t("payments.sentRequestTo")}
      </p>
    {/if}
  </div>
</div>

<a href={$requestRedirect || `/${user.username}`}>
  <div class="opacity-0 w-screen h-screen fixed top-0 left-0 z-50" />
</a>

<div class="fixed bottom-10 left-0 text-center w-full">
  {$t("payments.tapAnywhere")}
</div>